package colecoes;


import interfaces.InterfaceEndereco;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Vector;
import fachada.JDBC;
import basicas.Endereco;

public class ColEndereco implements InterfaceEndereco {
	
	Vector lst = new Vector();   // --> Declaracao do Vetor
	
	
	public void cadastrarEndereco(Endereco E) throws ClassNotFoundException, SQLException{
		String sql = "INSERT INTO endereco (logradouro, bairro, cidade, estado, cep) VALUES ('"+
		E.getLogradouro()+"','"+
		E.getBairro()+"','"+
		E.getCidade()+"','"+
		E.getEstado()+"','"+
		E.getCep()+"')";                             //  --> Declaracao da string sql com MDL de insercao
		
		Statement conexao = JDBC.getsStatement();    //  --> estancia a conexao
		conexao.executeUpdate(sql);                  //  --> executa a string de insercao ao banco de dados
		conexao.close();                             //  --> fecha a conexao do banco de dados
	}
	

	
	public Vector listarEndereco() throws ClassNotFoundException, SQLException{
		String sql = "SELECT *FROM endereco";
		Statement conexao = JDBC.getsStatement();
		ResultSet resultado = conexao.executeQuery(sql);                //  --> Declaracao de uma query do banco
		
		while(resultado.next()){                                        //  --> Enquanto a query estiver proximo
			Endereco end = new Endereco();		                        //  --> Estancia o objeto endereco
			end.setCodEndereco(resultado.getInt("codEndereco"));
			end.setLogradouro(resultado.getString("logradouro"));
			end.setBairro(resultado.getString("bairro"));
			end.setCidade(resultado.getString("cidade"));
			end.setEstado(resultado.getString("estado"));
			end.setCep(resultado.getString("cep"));
			lst.add(end);                                               //  --> Armazena o resultado da buxca no vetor
		}
		conexao.close();
		return lst;		                                                //  --> Retorna o vetor
	}
	
	
	public Endereco consultarEndereco(int codigo) throws ClassNotFoundException, SQLException{
		String sql = "SELECT *FROM endereco WHERE codendereco = " +codigo+";";
		Statement conexao = JDBC.getsStatement();
		ResultSet resultado = conexao.executeQuery(sql);
		
		while(resultado.next()){
			Endereco end = new Endereco();
			end.setCodEndereco(resultado.getInt("codEndereco"));
			end.setLogradouro(resultado.getString("logradouro"));
			end.setBairro(resultado.getString("bairro"));
			end.setCidade(resultado.getString("cidade"));
			end.setEstado(resultado.getString("estado"));
			end.setCep(resultado.getString("cep"));		
			return end;
		}
		conexao.close();
		return null;
	}
	
	
	public void removerEndereco(int codigo) throws ClassNotFoundException, SQLException{
		String sql = "DELETE FROM endereco WHERE codendereco = "+codigo+"";
		Statement conexao = JDBC.getsStatement();
		conexao.executeUpdate(sql);
		conexao.close();
	}
	
	
	public void editarEndereco(int codigo, String logradouro, String bairro, String cidade, String estado, String cep) throws ClassNotFoundException, SQLException{
		String sql = "UPDATE endereco SET logradouro = '"+logradouro+"', bairro = '"+bairro+"', cidade = '"+cidade+"', estado = '"+estado+"', cep = '"+cep+"' WHERE codendereco = "+codigo+";";
		Statement conexao = JDBC.getsStatement();
		conexao.executeUpdate(sql);
		conexao.close();
	}
	
}
